#include <stdio.h>
#include <stdlib.h>

// 定义结构体类型
struct student
{
    char name[10];
    int score;
} stu;

int main()
{
    int   n   = 5;                             // 读取前5个结构体数组元素
    FILE* fp  = fopen("student.txt", "w+");
    FILE* fp1 = fopen("studentout.txt", "w");

    if (fp == NULL) {
        printf("文件打开失败！\n");
        return -1;
    }

  struct student stuArr[10] = {
        { "Tom", 80 },
        { "Jerry", 90 },
        { "Alice", 75 },
        { "Bob", 85 },
        { "David", 92 }
    };
    for (int i = 0; i < n; i++)
    {
        fprintf(fp,"%s %d\n",stuArr[i].name, stuArr[i].score);
    }
    
   
    // 读取结构体数组
     rewind(fp);// 将文件指针移动到文件开头
    for (int i = 0; i < n; i++)
    {
        fscanf(fp, "%s %d", stuArr[i].name, &stuArr[i].score);
    }

    // 输出读取到的结构体数组
    for (int i = 0; i < n; i++)
    {
        printf("name: %s, score: %d\n", stuArr[i].name, stuArr[i].score);
    }
     // 将读取到的结构体数组写入文件
    for (int i = 0; i < n; i++)
    {
        fprintf(fp1, "%s %d\n", stuArr[i].name, stuArr[i].score);
    }
    fclose(fp);
    fclose(fp1);
    return 0;
}